#%RAML 0.8
title: Loan Types API
version: v1.0
protocols: [ HTTP, HTTPS ]
baseUri: http://localhost

documentation:
  - title: Loan Types API
    content: This documents the API calls that can be made to query and manage loan types of the system

schemas:
  - loantype: !include schema/loantype.json
  - loantypes: !include schema/loantypes.json
  - item: !include schema/item.json
  - items: !include schema/items.json
  - errors: !include ../raml-util/schemas/errors.schema
  - error: !include ../raml-util/schemas/error.schema
  - parameters: !include ../raml-util/schemas/parameters.schema

traits:
  - secured: !include ../raml-util/traits/auth.raml
  - pageable: !include ../raml-util/traits/pageable.raml
  - searchable: !include ../raml-util/traits/searchable.raml
  - language: !include ../raml-util/traits/language.raml
  - validate: !include ../raml-util/traits/validation.raml

resourceTypes:
  - collection: !include ../raml-util/rtypes/collection.raml
  - collection-item: !include ../raml-util/rtypes/item-collection.raml
  - get-delete-only: !include ../raml-util/rtypes/get-delete.raml

/loan-types:
  type:
    collection:
      exampleCollection: !include examples/loantypes.json
      exampleItem: !include examples/loantype.json
      schemaCollection: loantypes
      schemaItem: loantype
  get:
    is: [
      searchable: {description: "with valid searchable fields", example: "name=aaa"},
      pageable
    ]
    description: Return a list of loan types
  post:
    description: Create a new loan type
    is: [validate]
  /{loantypeId}:
    description: Pass in the loan type code
    type:
      collection-item:
        exampleItem: !include examples/loantype.json
        schema: loantype
